home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++ / leda / 16 < prev    next >
Encoding:
Text File  |  1996-08-05  |  16.8 KB  |  611 lines

  1. Path: news.sri.ucl.ac.be!lheureux
  2. From: Olivier L'Heureux <lheureux@dice.ucl.ac.be>
  3. Newsgroups: comp.lang.c++.leda
  4. Subject: Re: Shared Library under Solaris
  5. Date: 12 Feb 1996 11:55:23 GMT
  6. Organization: Lab. de Microelectronique - UCL - Belgium
  7. Distribution: world
  8. Message-ID: <LHEUREUX.96Feb12125523@sphinx.dice.ucl.ac.be>
  9. References: <ROADHOZF.96Feb2141851@sun16.engin.brown.edu>
  10. NNTP-Posting-Host: ns3.dice.ucl.ac.be
  11. Mime-Version: 1.0
  12. Content-Type: multipart/mixed; boundary="Multipart Mon Feb 12 12:54:19 1996"
  13. Content-Transfer-Encoding: 7bit
  14. In-reply-to: roadhozf@sun16.engin.brown.edu's message of 02 Feb 1996
  15.  19:18:47 GMT
  16.  
  17. --Multipart Mon Feb 12 12:54:19 1996
  18. Content-Type: text/plain; charset=ISO-8859-1
  19. Content-Transfer-Encoding: 8bit
  20.  
  21. In article <ROADHOZF.96Feb2141851@sun16.engin.brown.edu>
  22. roadhozf@sun16.engin.brown.edu (z.f roadhouse) writes:
  23.  
  24. >> I seem to remember that someone had instructions for create LEDA's
  25. >> libraries as shared libs under Solaris.  If you know how to do
  26. >> this, could you post instructions?
  27.  
  28. Yes. Here is the message I posted on the 31st of October, 1995.
  29. Please drop me a message if you succeed or if you have problems.
  30. BTW, I putted a copy of the original message on
  31.  
  32.   <URL:ftp://ftp.dice.ucl.ac.be/pub/divers/leda-shared.gz> (5 KB)
  33.  
  34.                         Hope it helps,
  35.  
  36.                         Olivier L'Heureux
  37.  
  38. ----------------------------------------------------------------------
  39.  
  40. Laboratoire de microΘlectronique de l'UniversitΘ catholique de Louvain
  41.  
  42. e-mail:    lheureux@dice.ucl.ac.be                   B-1348 Louvain-la-Neuve
  43. <URL:http://www.dice.ucl.ac.be/~lheureux>                      Belgium
  44. MIME/PGP accepted
  45.  
  46. --Multipart Mon Feb 12 12:54:19 1996
  47. Content-Type: text/plain; charset=US-ASCII
  48.  
  49. Hello,
  50.  
  51. I succeeded in building LEDA-3.2.3 as a shared library. It seems to be
  52. a useful information for many people, so I explain here how I did it.
  53.  
  54. Foreword:
  55.  
  56.   I compiled "LEDA-R-3.2.3" on a Sun SPARCstation 20.
  57.   The operation system was Solaris 2.4 (SunOS 5.4) with patch 101945-13.
  58.   The compiler used was gcc version 2.7.0.
  59.  
  60.   The modifications proposed here are given without any guarantee.
  61.   The entire risk as to the quality, performances or consequences of
  62.   the modifications is with you.
  63.  
  64. I may not guarantee it will work on other systems, though I believe it
  65. will on any Solaris2.x with at least gcc-2.6.3. `CC' should probably
  66. work too, with the same philosophy. Perhaps it works on Linux too,
  67. using the C++ sources in the `number' directory.
  68.  
  69. Without the shared libraries, compiling all the programmes with
  70. `-g -O' requires more than 100 MB ! With the shared libraries, `ged'
  71. takes 32 KB and `voronoi' 60 KB, for instance. When benchmarking the
  72. resulting executables, dynamically linked ones seems to be slower by
  73. approximately 10 %.
  74.  
  75. I would be interested if someone try to build the shared libraries and
  76. describes its problems.
  77.  
  78. Philosophy:
  79.  
  80.   1) Produce only PIC (Position-Independent Code) objects.
  81.   2) Build the normal libraries (`libL.a', `libG.a', `libP.a' and
  82.      `libWx.a')
  83.   3) Extract the object files from the libraries, and build a shared
  84.      object with them. Call it `lib{L,G,P,Wx}.so.3.2.3'. Place it in the
  85.      same directory as the original `lib{L,G,P,Wx}.a'.
  86.   4) Put a symbolic link from `lib{L,G,P,Wx}.so' to the
  87.      corresponding `lib{L,G,P,Wx}.so.3.2.3'
  88.  
  89. Now you may compile normally, and the executables will be dynamically
  90. linked. If you want statically linked libraries, use the option
  91. `-static' in g++.
  92.  
  93. A alpha-release patch for the files to be modified is given in appendix.
  94.  
  95. Details:
  96.  
  97. 1.1) Compile everything with the option `-fpic'. One way to do it is
  98.      to change the top Makefile, use
  99.  
  100.     cd src;  $(MAKE) -i FLAGS="\"-g -fpic -O\""
  101.  
  102.      in place of
  103.  
  104.     cd src;  $(MAKE) -i FLAGS=-g
  105.  
  106.      for instance. The `-g' and `-O' options are up to you.
  107.  
  108. 1.2) One special problem arise with the SPARC assembly sources in
  109.      "src/numbers". You need also to assemble with the `-K PIC'
  110.      option, so change :
  111.  
  112.     .s.o:
  113.         as -o $*.o $*.s
  114.  
  115.      in 
  116.  
  117.     .s.o:
  118.         as -K PIC -o $*.o $*.s
  119.  
  120.      in "src/Make.src".
  121.  
  122.      The files `_sparc_mul.s' and `_sparc_div.s', assembled with
  123.      `-K PIC', do not cause further problems. But `_sparc_add.s' and
  124.      `_sparc_sub.s' do, they seem to have been compiled with gcc but
  125.      without `-fpic'. So recompile them from `_sgnu_add.c' and
  126.      `_sgnu_sub.c'. But there is a declaration problem: the
  127.      `School_Add' function is declared 
  128.      
  129.     #define School_Add      _School_Add
  130.     extern "C" sz_t School_Add(word*,sz_t,word*,sz_t,word*);
  131.  
  132.      in "src/numbers/_integer.c" and
  133.  
  134.     extern sz_t School_Add(word *a, sz_t a_used, word *b, sz_t b_used, word* sum)
  135.  
  136.      in "src/numbers/_sgnu_add.c". Compiling it so will not link,
  137.      because `_School_Add' will not be found. Modify thus
  138.      the declaration in `_sgnu_add.c' and put:
  139.  
  140.     sz_t _School_Add(word *a, sz_t a_used, word *b, sz_t b_used, word* sum)
  141.  
  142.      in place of the `extern' definition. Similarly, replace:
  143.  
  144.     extern sz_t School_Sub(word *a, sz_t a_used, word *b, sz_t b_used, word* diff)
  145.      by
  146.  
  147.     sz_t _School_Sub(word *a, sz_t a_used, word *b, sz_t b_used, word* diff)
  148.  
  149.      in "src/numbers/_sgnu_sub.c".
  150.      Compile them with `-fpic'. You may add the following lines in
  151.      "src/numbers/Makefile":
  152.  
  153.     _sparc_add.o: _sgnu_add.c
  154.           gcc -O -fpic -o $@ -c $<
  155.  
  156.     _sparc_sub.o: _sgnu_sub.c
  157.           gcc -O -fpic -o $@ -c $<
  158.  
  159.      I don't know what are the consequences of these modification on
  160.      the efficiency of the resulting code, but I believe they are
  161.      small (10-20 % ?).
  162.    
  163. 3.1) One easy way to build a `lib?.so.3.2.3' library from a `lib?.a'
  164.      is to create a directory, extract all the `.o' files there, and
  165.      reassemble the result. For instance:
  166.  
  167.     mkdir shared_L
  168.     cd shared_L
  169.     ar xv ../libL.a
  170.     cd ..
  171.     g++ -shared -o /dir/leda/LEDA-3.2.3/libL.so.3.2.3 shared_L/*.o
  172.     rm -r shared_L
  173.  
  174.      This may be automated in the top Makefile:
  175.  
  176.     # Shared libraries on Solaris 2.4 with gcc.
  177.  
  178.     # Absolute path for the libraries, change with your own.
  179.     LEDADIR=/dir/leda/LEDA-3.2.3
  180.  
  181.     lib%.so.3.2.3: lib%.a
  182.         mkdir sh_$<
  183.         (cd sh_$<; ar xv ../$<)
  184.         g++ -shared -o $(LEDADIR)/$@ sh_$</*.o
  185.         rm -r sh_$<
  186.  
  187.     lib%.so: lib%.so.3.2.3
  188.         ln -s $< $@
  189.  
  190.     shared_lib: libL.so libL.so.3.2.3
  191.     shared_lib: libG.so libG.so.3.2.3
  192.     shared_lib: libP.so libP.so.3.2.3 
  193.     shared_lib: libWx.so libWx.so.3.2.3
  194.  
  195.      Enter then `make shared_lib'.
  196.  
  197.      It is important to give an absolute path for the library created,
  198.      because this path will be used for dynamic linking. The path
  199.      should refer to the right shared library at _compile_ time *and*
  200.      at _execution_ time.
  201.  
  202.      There are actually two ways for Solaris to find the dynamic
  203.      objects: either they are specified by an absolute path, or they
  204.      are searched through the $LD_LIBRARY_PATH environment
  205.      variable. We used the first, you may choose the second. Then,
  206.      specify only a basename, like:
  207.  
  208.     g++ -shared -o libL.so.3.2.3 shared_L/*.o
  209.  
  210.      You must then explain at execution time where to find LEDA's
  211.      dynamic libraries:
  212.  
  213.     setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/dir/leda/LEDA-3.2.3
  214.  
  215.      before you start the executables. This gives you an idea of the
  216.      result:
  217.  
  218.     sphinx34> ls -l ged voronoi
  219.     -rwxr-xr-x  1 lheureux    32840 Oct 31 15:38 ged
  220.     -rwxr-xr-x  1 lheureux    59640 Oct 31 15:38 voronoi
  221.     sphinx35> file ged voronoi
  222.     ged:            ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped
  223.     voronoi:        ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped
  224.     sphinx36> ldd ged
  225.         /dir/leda/LEDA-3.2.3/libP.so.3.2.3
  226.         /dir/leda/LEDA-3.2.3/libG.so.3.2.3
  227.         /dir/leda/LEDA-3.2.3/libL.so.3.2.3
  228.         /dir/leda/LEDA-3.2.3/libWx.so.3.2.3
  229.         libX11.so.5.0 =>         /usr/X11R5/lib/libX11.so.5.0
  230.         libsocket.so.1 =>        /usr/lib/libsocket.so.1
  231.         libstdc++.so.2.7.0 =>    /usr/lib/libstdc++.so.2.7.0
  232.         libm.so.1 =>     /usr/lib/libm.so.1
  233.         libc.so.1 =>     /usr/lib/libc.so.1
  234.         libnsl.so.1 =>   /usr/lib/libnsl.so.1
  235.         libdl.so.1 =>    /usr/lib/libdl.so.1
  236.         libintl.so.1 =>  /usr/lib/libintl.so.1
  237.         libw.so.1 =>     /usr/lib/libw.so.1
  238.     sphinx37> 
  239.  
  240. You may try to compile the programmes in the `prog' directory, but you
  241. have then to modify the Makefiles. Indeed, the programmes in
  242. `prog/basic', for instance, are linked with $UNIXLIB, defined in
  243. `prog/basic/Makefile' as
  244.  
  245.     UNIXLIB = ../../libL.a -lm
  246.  
  247. They must be linked with
  248.  
  249.     UNIXLIB = -L../.. -lL -lm
  250.  
  251. in order to find the dynamic library `libL.so'. Whenever you use
  252. `-lP', you _must_ use `-lX11 -lsocket', because _all_ the references
  253. in `libP.so.3.2.3' must be resolved, even if you do not really use
  254. X11.
  255. --Multipart Mon Feb 12 12:54:19 1996
  256. Content-Type: text/plain; charset=US-ASCII
  257.  
  258.  
  259. *** ./src/numbers/Makefile    Tue Oct 24 12:31:06 1995
  260. --- ./src/numbers/Makefile.orig    Fri Sep 15 15:42:49 1995
  261. ***************
  262. *** 9,19 ****
  263.       $(RANLIB)
  264.       touch sparc
  265.   
  266. ! _sparc_add.o: _sgnu_add.c
  267. !     gcc -O -fpic -o $@ -c $<
  268. ! _sparc_sub.o: _sgnu_sub.c
  269. !     gcc -O -fpic -o $@ -c $<
  270.    
  271.   sparc-clean:
  272.       rm -f _sparc*.o
  273. --- 9,17 ----
  274.       $(RANLIB)
  275.       touch sparc
  276.   
  277. ! sparc_gnu:
  278. !     gcc -O -S _sgnu_add.c
  279. !     gcc -O -S _sgnu_sub.c
  280.    
  281.   sparc-clean:
  282.       rm -f _sparc*.o
  283. *** ./src/numbers/_sgnu_add.c    Tue Oct 24 15:48:58 1995
  284. --- ./src/numbers/_sgnu_add.c.orig    Fri Sep 15 15:54:53 1995
  285. ***************
  286. *** 15,21 ****
  287.   typedef unsigned long  word;
  288.   typedef unsigned int sz_t;
  289.   
  290. ! sz_t _School_Add(word *a, sz_t a_used, word *b, sz_t b_used, word* sum)
  291.   {
  292.     /* compute sum = a + b   (a_used >= b_used) */
  293.   
  294. --- 15,21 ----
  295.   typedef unsigned long  word;
  296.   typedef unsigned int sz_t;
  297.   
  298. ! extern sz_t School_Add(word *a, sz_t a_used, word *b, sz_t b_used, word* sum)
  299.   {
  300.     /* compute sum = a + b   (a_used >= b_used) */
  301.   
  302. *** ./src/numbers/_sgnu_sub.c    Tue Oct 24 15:49:24 1995
  303. --- ./src/numbers/_sgnu_sub.c.orig    Fri Sep 15 15:54:54 1995
  304. ***************
  305. *** 16,22 ****
  306.   typedef unsigned long  word;
  307.   typedef unsigned int sz_t;
  308.   
  309. ! sz_t _School_Sub(word *a, sz_t a_used, word *b, sz_t b_used, word* diff)
  310.   {
  311.     /* compute diff = a - b    (a > b) */
  312.   
  313. --- 16,24 ----
  314.   typedef unsigned long  word;
  315.   typedef unsigned int sz_t;
  316.   
  317. ! extern sz_t School_Sub(word *a, sz_t a_used, word *b, sz_t b_used, word* diff)
  318.   {
  319.     /* compute diff = a - b    (a > b) */
  320.   
  321. *** ./src/Make.src    Tue Oct 24 09:40:29 1995
  322. --- ./src/Make.src.orig    Fri Sep 15 15:42:47 1995
  323. ***************
  324. *** 4,17 ****
  325.   LIB    = ../../$(L).a
  326.   CFLAGS = -O
  327.   ARLIB  = ar r $(LIB) $?
  328. ! # RANLIB = ranlib $(LIB)
  329. ! RANLIB = true
  330.   o      = .o
  331.   .c.o:
  332.       ../../c++  -I../../incl $(CFLAGS) $(DFLAGS) -c $*.c
  333.   
  334.   .s.o:
  335. !     as -K PIC -o $*.o $*.s
  336.   
  337.   
  338.   #-----------------------------------------------------------------------------
  339. --- 4,16 ----
  340.   LIB    = ../../$(L).a
  341.   CFLAGS = -O
  342.   ARLIB  = ar r $(LIB) $?
  343. ! RANLIB = ranlib $(LIB)
  344.   o      = .o
  345.   .c.o:
  346.       ../../c++  -I../../incl $(CFLAGS) $(DFLAGS) -c $*.c
  347.   
  348.   .s.o:
  349. !     as -o $*.o $*.s
  350.   
  351.   
  352.   #-----------------------------------------------------------------------------
  353. *** ./prog/plane/Makefile    Tue Oct 24 16:34:24 1995
  354. --- ./prog/plane/Makefile.orig    Fri Sep 15 15:42:57 1995
  355. ***************
  356. *** 1,5 ****
  357.   
  358. ! UNIXLIB = -L../.. -lP -lG -lL -lWx -lX11 -lsocket -lm
  359.   
  360.   DOSLIB = ..\\..\\libp.lib ..\\..\\libg.lib ..\\..\\libl.lib
  361.   
  362. --- 1,5 ----
  363.   
  364. ! UNIXLIB = ../../libP.a ../../libG.a ../../libL.a -lm
  365.   
  366.   DOSLIB = ..\\..\\libp.lib ..\\..\\libg.lib ..\\..\\libl.lib
  367.   
  368. *** ./prog/graph/Makefile    Tue Oct 24 11:56:58 1995
  369. --- ./prog/graph/Makefile.orig    Fri Sep 15 15:42:59 1995
  370. ***************
  371. *** 1,5 ****
  372.   
  373. ! UNIXLIB = -L../.. -lG -lL -lm
  374.   
  375.   DOSLIB = ..\\..\\libg.lib ..\\..\\libl.lib
  376.   
  377. --- 1,5 ----
  378.   
  379. ! UNIXLIB = ../../libG.a ../../libL.a -lm
  380.   
  381.   DOSLIB = ..\\..\\libg.lib ..\\..\\libl.lib
  382.   
  383. *** ./prog/basic/Makefile    Tue Oct 24 11:54:08 1995
  384. --- ./prog/basic/Makefile.orig    Fri Sep 15 15:43:02 1995
  385. ***************
  386. *** 1,5 ****
  387.   
  388. ! UNIXLIB = -L../.. -lL -lm
  389.   
  390.   DOSLIB = ..\\..\\libl.lib
  391.   
  392. --- 1,5 ----
  393.   
  394. ! UNIXLIB = ../../libL.a -lm
  395.   
  396.   DOSLIB = ..\\..\\libl.lib
  397.   
  398. *** ./prog/sweep/makefile    Tue Oct 24 12:05:51 1995
  399. --- ./prog/sweep/makefile.orig    Fri Sep 15 15:43:04 1995
  400. ***************
  401. *** 3,10 ****
  402.   
  403.   CFLAGS = -O
  404.   
  405. ! LIBS = -L../.. -lP -lG -lL -lm
  406. ! LIBX = -L../.. -lP -lG -lL ../../libWx.a -lX11 -lm
  407.   
  408.   .c.o:
  409.       $(CC) $(CFLAGS) -c $*.c
  410. --- 3,10 ----
  411.   
  412.   CFLAGS = -O
  413.   
  414. ! LIBS = ../../libP.a ../../libG.a ../../libL.a -lm
  415. ! LIBX = ../../libP.a ../../libG.a ../../libL.a ../../libWx.a -lX11 -lm
  416.   
  417.   .c.o:
  418.       $(CC) $(CFLAGS) -c $*.c
  419. *** ./prog/prio/Makefile    Tue Oct 24 11:55:05 1995
  420. --- ./prog/prio/Makefile.orig    Fri Sep 15 15:43:06 1995
  421. ***************
  422. *** 1,5 ****
  423.   
  424. ! UNIXLIB = -L../.. -lL -lm
  425.   
  426.   DOSLIB = ..\\..\\libl.lib
  427.   
  428. --- 1,5 ----
  429.   
  430. ! UNIXLIB = ../../libL.a -lm
  431.   
  432.   DOSLIB = ..\\..\\libl.lib
  433.   
  434. *** ./prog/dict/Makefile    Tue Oct 24 11:56:12 1995
  435. --- ./prog/dict/Makefile.orig    Fri Sep 15 15:43:06 1995
  436. ***************
  437. *** 1,5 ****
  438.   
  439. ! UNIXLIB = -L../.. -lL -lm
  440.   
  441.   DOSLIB = ..\\..\\libl.lib
  442.   
  443. --- 1,5 ----
  444.   
  445. ! UNIXLIB = ../../libL.a -lm
  446.   
  447.   DOSLIB = ..\\..\\libl.lib
  448.   
  449. *** ./prog/demo/Makefile    Tue Oct 24 12:04:19 1995
  450. --- ./prog/demo/Makefile.orig    Fri Sep 15 15:43:10 1995
  451. ***************
  452. *** 1,5 ****
  453.    
  454. ! UNIXLIB = -L../.. -lP -lG -lL -lWx -lX11 -lm -lsocket
  455.   
  456.   DOSLIB = ..\\..\\libp.lib ..\\..\\libg.lib ..\\..\\libl.lib ..\\..\\libwx.lib
  457.   
  458. --- 1,5 ----
  459.    
  460. ! UNIXLIB = ../../libP.a ../../libG.a ../../libL.a ../../libWx.a -lX11 -lm
  461.   
  462.   DOSLIB = ..\\..\\libp.lib ..\\..\\libg.lib ..\\..\\libl.lib ..\\..\\libwx.lib
  463.   
  464. *** ./prog/window/Makefile    Tue Oct 24 17:19:31 1995
  465. --- ./prog/window/Makefile.orig    Fri Sep 15 15:43:13 1995
  466. ***************
  467. *** 1,5 ****
  468.    
  469. ! UNIXLIB = -L../.. -lP -lG -lL -lWx -lX11 -lsocket -lm
  470.   
  471.   DOSLIB = ..\\..\\libp.lib ..\\..\\libg.lib ..\\..\\libl.lib ..\\..\\libwx.lib
  472.   
  473. --- 1,5 ----
  474.    
  475. ! UNIXLIB = ../../libP.a ../../libG.a ../../libL.a ../../libWx.a -lX11 -lm
  476.   
  477.   DOSLIB = ..\\..\\libp.lib ..\\..\\libg.lib ..\\..\\libl.lib ..\\..\\libwx.lib
  478.   
  479. *** ./man/extman.awk    Mon Oct 16 16:37:19 1995
  480. --- ./man/extman.awk.orig    Fri Sep 15 15:43:17 1995
  481. ***************
  482. *** 1,5 ****
  483. ! # BEGIN { datatype = "?????????????"; }
  484. ! BEGIN { datatype = "............."; }
  485.   
  486.   function removeweb() 
  487.   { x = 0; 
  488. --- 1,4 ----
  489. ! BEGIN { datatype = "?????????????"; }
  490.   
  491.   function removeweb() 
  492.   { x = 0; 
  493. ***************
  494. *** 57,64 ****
  495.   /\/\*{\\Mbinopfunc/ {
  496.     split(memberfunc,arr);
  497.     if (arr[2] !~ /[a-z,A-Z]+.*/)   # binary operator
  498. !   {
  499. !     sub(/arr[2]/,"",memberfunc);
  500.       sub(/\(/,"",memberfunc);
  501.       sub(/\)/,"",memberfunc);
  502.       sub(/\,/,"\\ "arr[2],memberfunc);
  503. --- 56,62 ----
  504.   /\/\*{\\Mbinopfunc/ {
  505.     split(memberfunc,arr);
  506.     if (arr[2] !~ /[a-z,A-Z]+.*/)   # binary operator
  507. !   { sub(arr[2],"",memberfunc);
  508.       sub(/\(/,"",memberfunc);
  509.       sub(/\)/,"",memberfunc);
  510.       sub(/\,/,"\\ "arr[2],memberfunc);
  511. *** ./man/tman    Mon Oct 16 17:42:02 1995
  512. --- ./man/tman.orig    Fri Sep 15 15:43:14 1995
  513. ***************
  514. *** 1,7 ****
  515.   #!/bin/csh -f
  516.   
  517.   # set LEDA_HOME = your LEDA home directory
  518. ! set LEDA_HOME = /dir/leda/LEDA-3.2.3
  519.   
  520.   # LEDA include directory
  521.   set INCL = $LEDA_HOME/incl/LEDA
  522. --- 1,7 ----
  523.   #!/bin/csh -f
  524.   
  525.   # set LEDA_HOME = your LEDA home directory
  526. ! set LEDA_HOME = /LEDA/SRC
  527.   
  528.   # LEDA include directory
  529.   set INCL = $LEDA_HOME/incl/LEDA
  530. ***************
  531. *** 56,63 ****
  532.   echo ""                    >> $tmpfile.tex
  533.   echo "\begin{document}"                 >> $tmpfile.tex
  534.   echo "\chapter{ }"            >> $tmpfile.tex
  535. ! # gawk -f $MAN/extman.awk $INCL/$1.h      >> $tmpfile.tex
  536. ! $MAN/Awk -f $MAN/extman.awk $INCL/$1.h      >> $tmpfile.tex
  537.   echo "\end{document}"            >> $tmpfile.tex
  538.   
  539.   
  540. --- 56,62 ----
  541.   echo ""                    >> $tmpfile.tex
  542.   echo "\begin{document}"                 >> $tmpfile.tex
  543.   echo "\chapter{ }"            >> $tmpfile.tex
  544. ! gawk -f $MAN/extman.awk $INCL/$1.h      >> $tmpfile.tex
  545.   echo "\end{document}"            >> $tmpfile.tex
  546.   
  547.   
  548. *** ./man/Makefile    Mon Oct 16 16:36:32 1995
  549. --- ./man/Makefile.orig    Fri Sep 15 15:43:15 1995
  550. ***************
  551. *** 1,4 ****
  552. - SHELL= /bin/csh
  553.   
  554.   MANUAL.ps: MANUAL.dvi
  555.       dvips MANUAL.dvi
  556. --- 1,3 ----
  557. *** ./Makefile    Tue Oct 31 16:43:16 1995
  558. --- ./Makefile.orig    Fri Sep 15 15:42:14 1995
  559. ***************
  560. *** 11,43 ****
  561.   lib_g: 
  562.       cd src;  $(MAKE) -i FLAGS=-g
  563.   
  564. - lib_gO: 
  565. -     cd src;  $(MAKE) -i FLAGS="\"-g -fpic -O\""
  566.   lib_pg: 
  567.       cd src;  $(MAKE) -i FLAGS=-pg
  568.   
  569.   lib_w: 
  570.       cd src;  $(MAKE) -i FLAGS=-Wall
  571.   
  572. - # Shared libraries on Solaris 2.4 with gcc.
  573. - # Absolute path for the libraries, change with your own.
  574. - LEDADIR=/dir/leda/LEDA-3.2.3
  575.   
  576. - lib%.so.3.2.3: lib%.a
  577. -     mkdir sh_$<
  578. -     (cd sh_$<; ar xv ../$<)
  579. -     g++ -shared -o $(LEDADIR)/$@ sh_$</*.o
  580. -     rm -r sh_$<
  581. - lib%.so: lib%.so.3.2.3
  582. -     ln -s $< $@
  583. - shared_lib: libL.so libL.so.3.2.3
  584. - shared_lib: libG.so libG.so.3.2.3
  585. - shared_lib: libP.so libP.so.3.2.3 
  586. - shared_lib: libWx.so libWx.so.3.2.3
  587.   
  588.   #------------------------------------------------------------------------------
  589.   # Programs
  590. --- 11,23 ----
  591. ***************
  592. *** 51,59 ****
  593.   
  594.   pro_g:
  595.       cd prog; $(MAKE) -i FLAGS=-g
  596. - pro_gO:
  597. -     cd prog; $(MAKE) -i FLAGS="\"-g -O\""
  598.   
  599.   pro_pg:
  600.       cd prog; $(MAKE) -i FLAGS=-pg
  601. --- 31,36 ----
  602. --Multipart Mon Feb 12 12:54:19 1996--
  603.